package szte.objectorgy.collections;

/**
 * General interface for the map data structure which is essentially an
 * associative array or look-up table.
 * 
 * @author Csilla-Andrea KAPUSI
 * @param <K>
 *            The type of the keys used for the look-up.
 * @param <V>
 *            The type of the elements stored in this collection.
 */
public interface Map<K extends Comparable<K>, V extends Comparable<V>> {
	public void clear();

	public boolean containsKey(K key);

	public boolean containsValue(V value);

	public Set<Pair<K, V>> entrySet();

	public V get(K key);

	public boolean isEmpty();

	public Set<K> keySet();

	public void put(K key, V value);

	public void putAll(Map<K, V> map);

	public void remove(K key);

	public int size();

	// public Object[] toArray();

	public Collection<V> values();
}
